<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title></title>
	<link rel="stylesheet" href="">
</head>
<body>
	<script>
		// 可以将数组中元素(object)的某一个值(通常是具有归纳属性的)相同的，即同一类的元素合并，而数组元素中不需要合并的属性可以叠加
		var list=[
		         {
		         	pid:1,
		         	num:12,
		         	numSaled:4
		         },
		         {
		         	pid:2,
		         	num:32,
		         	numSaled:12
		         },
		         {
		         	pid:1,
		         	num:22,
		         	numSaled:5
		         },
		         {
		         	pid:2,
		         	num:33,
		         	numSaled:20
		         }]

		var  combineObjectInList=function(arr, item, list) {    //数组去除重复，item为重复判定项，list为重复记录需要累加的值的数组
			var obj = {};                        
			var a=[];
			for(var i in arr) {

				if(!obj[arr[i][item]]) {

					obj[arr[i][item]] = copyObj(arr[i]);   //数组克隆

				} else if(!!obj[arr[i][item]]) {

					for(var j in list) {

					    obj[arr[i][item]][list[j]]=obj[arr[i][item]][list[j]]+parseFloat(arr[i][list[j]]);
					}
				}
			}
			for(var k in obj){
				a.push(obj[k]);
			}

			return a;


		}
var copyObj=function(obj) { 
                  //obj arr 对象的克隆（区分于指针赋值）
	if(obj.constructor == Array) {
		var a = [];
		for(var i in obj) {

			a.push(obj[i]);

		}

		return a;
		
	} else {

		var o = {}

		for(var i in obj) {
			o[i] = obj[i];
		}
		return o;
	}

}
	</script>
</body>
</html>